The technology described herein relates to graphics processing systems and in particular to aspects of the operation of graphics processing systems when using textures when rendering.
It is known in graphics processing systems to use graphics textures that represent the colour of the surface of a bounding volume, for example for use for techniques such as so-called “environment mapping”. An example of such a texture is a cube texture (a cube map).
In these arrangements, the texture stores one or more colour values for respective directions from a reference position (point) within the volume that the texture represents (and that the texture is defined with respect to), and is sampled by determining a direction from the reference position (point) for (within) the texture to a position on the surface that the texture represents.
Typically, such textures are defined as having multiple faces, with the vector that is used to sample the texture then identifying the “face” to be sampled and the sampling position within that face. For example, in the case of cube mapping, six (square) 2D images are used to form a cube, with each 2D image representing a respective face of the cube map. Each face of the cube has a respective face-index that can be used to identify it.
To use such a multi-faced texture such as a cube map, a 3D unit length direction vector that points from the centre of the texture (e.g. cube) onto one of the faces on the inside of the texture (e.g. cube) is defined (e.g. by the application that requires the graphics processing in question).
However, in order for the graphics processing pipeline to then be able to sample the, e.g. cube, texture when rendering, this vector representation of the desired, e.g. cube map, sample must be converted into a 2D position on one of the faces of the texture, e.g. cube. To do this, the face of the texture, e.g. cube map, that the 3D vector is pointing to is identified, and then the intersection position of the vector on that face is converted to a pair of 2D coordinates (S and T coordinates) within that face.
The 2D position coordinates (the S coordinate and the T coordinate) and the identified texture face (the face index) that the coordinates relate to, are then provided to the texturing unit of the graphics processing pipeline. The graphics processing pipeline texturing unit then reads the colour value from the image (texture) representing the indicated texture face for the position represented by the 2D coordinates.
Similar considerations apply to other forms of environment textures (environment maps). For example, in the case of paraboloid dome texture mapping, the texture will comprise two paraboloid domes, and the graphics processing pipeline will need to be provided with an indication of which “dome” is to be sampled and the position coordinates to be sampled for that dome.
Thus an important aspect of multi-face texture mapping operation in graphics processing pipelines is the provision of the appropriate “texture map descriptor” comprising the texture coordinates (S and T coordinates) and the texture map face index to the graphics processing pipeline.
The Applicants believe that there remains scope for improvements to this aspect of multi-face texture mapping operations.
Like reference numerals are used for like components where appropriate in the drawings.